Navigation is one of the primary interface challenges for information providers. If an information structure is not easy to navigate, the user may become frustrated and move on without finding the desired data. There are at least two major paradigms for navigating through on-line information. The first, keyword searching, is relatively easy to support in a typical client-server environment, such as the World Wide Web. The other, hierarchical index browsing, is far more challenging to implement satisfactorily in a client-server network environment like the World Wide Web.
By hierarchical index browsing, we refer to providing interactive access to information through a hierarchical, tree-like, incrementally expandable table-of-contents ("TOC"). The expandable TOC is displayed to users on a computer screen, and as each node within the TOC is interactively selected or activated by a user, the next level of information for that node is shown indented, directly below its "parent" node. Selected portions of the TOC hierarchy are thus expanded while maintaining the context of the rest of the tree. In this way, users can explore selected portions of the TOC in greater detail, while maintaining the larger context of the overall structure. Ultimately, interactive selection by the user of a leaf node at the lowest level of hierarchy within the TOC will typically cause an associated document or set of information to be displayed for the user. The navigational paradigm of hierarchical index browsing has been commonly used in a wide variety of personal computer applications, but until now has not been successfully realized in a client-server network environment like the World Wide Web, as will be explained below.
The World Wide Web ("the Web") is a voluminous collection of hypertextually linked documents and information distributed across wide-area networks. The Web effectively unites a diverse body of heterogeneous computers, allowing the computers to exchange information using a standardized document language known as HTML (the "HyperText Mark-up Language"). Each computer that is part of the Web can access an HTML document located elsewhere within the Web basically in the following manner: the computer seeking access runs a standard "browser" program, which formulates a request encoded in HTTP (the "Hypertext Transfer Protocol") for accessing a desired network document, and transmits that request across a network to the computer on which the document is stored. At the heart of the HTTP request is a URL (or "Uniform Resource Locator"), which is essentially an address path identifying the computer which hosts the desired document, and also identifying the document to that host computer. The host computer receives and parses the HTTP request, and responds by transmitting a copy of the document to the requesting computer. Assuming the document is written in standard HTML, the recipient computer's browser will cause the document to be displayed appropriately on the recipient computer, even though the recipient and host computers may in fact represent heterogeneous computer platforms. In traditional client-server terminology, the computer running the browser program and issuing the request is the "client," while the computer hosting the document and servicing the request for access is the "server." For more information about the Web, see for example T. Berners-Lee, R. Cailliau, A. Loutonen, H. F. Nielsen, and A. Secret, "The World Wide Web," Communications of the ACM, vol. 37(8), August 1994.
On the Web, effective navigational tools are of critical importance and value. However, until now, there has been no satisfactory implementation of hierarchical index browsing for computer environments like the Web. Broadly speaking, that is because supporting an incrementally expandable, tree-like TOC requires some mechanism to capture and keep track of the current state of the TOC (i.e., which nodes are currently expanded and which are not). However, uniform protocols like HTTP and HTML are generally stateless; indeed, they are intentionally simplistic, in order to better unify a diverse body of heterogeneous computers. Therefore, the conventional wisdom has been that the limited, stateless environment of HTML and HTTP are not suitable for implementing more sophisticated navigational facilities such as true hierarchical index browsing.
Several navigational facilities have been developed in a compromise effort to capture at least some of the benefits of hierarchical index browsing. One common approach is the "limited context" solution, which works as follows. When a node within the hierarchical TOC is selected or activated, a new page is displayed, containing only the information pertaining to that selected node. The node path information is often displayed at the top of the page, in an effort to maintain some contextual information for the current node. Nonetheless, this solution ultimately causes a context shift for the user, forcing the user into a restricted view of the overall TOC by removing relationships to other nodes at higher levels. This solution also requires separate pages to be maintained for each node and sub-node on the server. In another prior art solution, the "single-open" solution, users are allowed to expand a single, selected node, while otherwise maintaining the original TOC structure in the display. However, when a second node at the same level is selected, the first node collapses. This unexpected behavior causes undesirable confusion, since there is no user-intuitive reason for imposing a limitation on the number of open nodes. Rather, the "single open" imitation is caused by the underlying implementation. One static page specifying the display of an expanded node is created for each node in the table of contents, and an appropriate one of those pages must be selected in response to the user's interactive selection of TOC nodes. Thus, in order to support multiple open nodes using this prior art approach, the number of predefined static pages required would increase logarithmically, which would be unwieldy and impractical for even relatively simple TOC hierarchies.
Client-server browsers that support more complex programming languages like Java (from Sun Microsystems) may eventually allow information providers to offer their users full-featured user interfaces comparable to those now available in personal computer environments. However, unless and until a language like Java becomes standard for all browsers, networked communities like the Web must work within the limitations of existing, stateless browsers, or else forfeit the benefit of universal information access within their community. Indeed, some visionaries in the field have argued forcefully against efforts to replace current browsers with more complicated and powerful programming languages, on the grounds that universal compatibility for information exchange should not be compromised. According to this view, the simplicity of current browsers is at the same time their greatest strength.
What is needed is a methodology that provides true hierarchical index browsing of hypertextual client-server documents, without abandoning the simplicity of current browsers and markup languages. Stated differently, what is needed is a practical implementation of hierarchical index browsing in a current client-server environment like the Web, such that hierarchical TOC context is fully maintained at all levels for the user, without requiring adjustments to standard network browsers and without adding unexpected, unwanted behaviors.